/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.ugc.cnel.manabi.entidades;

import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Admin
 */
@Entity
@Table(name = "inspeccion", catalog = "", schema = "public")
@NamedQueries({@NamedQuery(name = "Inspeccion.findAll", query = "SELECT i FROM Inspeccion i"),
@NamedQuery(name = "Inspeccion.findById", query = "SELECT i FROM Inspeccion i WHERE i.id = :id"),
@NamedQuery(name = "Inspeccion.findBySelloEncontro", query = "SELECT i FROM Inspeccion i WHERE i.selloEncontro = :selloEncontro"),
@NamedQuery(name = "Inspeccion.findBySelloDejo", query = "SELECT i FROM Inspeccion i WHERE i.selloDejo = :selloDejo"),
@NamedQuery(name = "Inspeccion.findByRecuNeta", query = "SELECT i FROM Inspeccion i WHERE i.recuNeta = :recuNeta"),
@NamedQuery(name = "Inspeccion.findByRecuAcumulada", query = "SELECT i FROM Inspeccion i WHERE i.recuAcumulada = :recuAcumulada"),
@NamedQuery(name = "Inspeccion.findByObservaciones", query = "SELECT i FROM Inspeccion i WHERE i.observaciones = :observaciones"),
@NamedQuery(name = "Inspeccion.findByFechaRegistro", query = "SELECT i FROM Inspeccion i WHERE i.fechaRegistro = :fechaRegistro")})
public class Inspeccion implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @GeneratedValue(strategy=GenerationType.SEQUENCE)
    @Column(name = "id", nullable = false)
    private Integer id;
    @Column(name = "sello_encontro")
    private Integer selloEncontro;
    @Column(name = "sello_dejo")
    private Integer selloDejo;
    @Column(name = "recu_neta", precision = 2147483647, scale = 0)
    private Double recuNeta;
    @Column(name = "recu_acumulada", precision = 2147483647, scale = 0)
    private Double recuAcumulada;
    @Column(name = "observaciones", length = 2147483647)
    private String observaciones;
    @Basic(optional=false)
    @Column(name="fecha_inspeccion",nullable=false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaInspeccion;
    @Basic(optional = false)
    @Column(name = "fecha_registro", nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaRegistro;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idInspeccion")
    private Collection<Adjuntos> adjuntosCollection;
    //@JoinColumn(name = "id_agencia", referencedColumnName = "id", nullable = false)
    //@ManyToOne(optional = false)
    @Column(name = "id_agencia", nullable = false)
    private Integer idAgencia;
    @JoinColumn(name = "id_campo", referencedColumnName = "id", nullable = false)
    @ManyToOne(optional = false)
    private Campo idCampo;
    @JoinColumn(name="id_servicio",referencedColumnName="id",nullable=false )
    @ManyToOne(optional=false)
    private Servicio idServicio;
    @JoinColumn(name = "id_cliente", referencedColumnName = "id", nullable = false)
    @ManyToOne(optional = false)
    private Cliente idCliente;
    @JoinColumn(name = "id_inspector", referencedColumnName = "id", nullable = false)
    @ManyToOne(optional = false)
    private Inspector idInspector;
    @JoinColumn(name = "id_liquidador", referencedColumnName = "id")
    @ManyToOne
    private Liquidador idLiquidador;
    @JoinColumn(name = "id_motivo", referencedColumnName = "id", nullable = false)
    @ManyToOne(optional = false)
    private Motivo idMotivo;
    @JoinColumn(name = "id_novedad", referencedColumnName = "id", nullable = false)
    @ManyToOne(optional = false)
    private Novedad idNovedad;
    @JoinColumn(name = "id_usuario", referencedColumnName = "id", nullable = false)
    @ManyToOne(optional = false)
    private Usuario idUsuario;

    public Inspeccion() {
    }

    public Inspeccion(Integer id) {
        this.id = id;
    }

    public Inspeccion(Integer id, Date fechaRegistro) {
        this.id = id;
        this.fechaRegistro = fechaRegistro;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getSelloEncontro() {
        return selloEncontro;
    }

    public void setSelloEncontro(Integer selloEncontro) {
        this.selloEncontro = selloEncontro;
    }

    public Integer getSelloDejo() {
        return selloDejo;
    }

    public void setSelloDejo(Integer selloDejo) {
        this.selloDejo = selloDejo;
    }

    public Double getRecuNeta() {
        return recuNeta;
    }

    public void setRecuNeta(Double recuNeta) {
        this.recuNeta = recuNeta;
    }

    public Double getRecuAcumulada() {
        return recuAcumulada;
    }

    public void setRecuAcumulada(Double recuAcumulada) {
        this.recuAcumulada = recuAcumulada;
    }

    public String getObservaciones() {
        return observaciones;
    }

    public void setObservaciones(String observaciones) {
        this.observaciones = observaciones;
    }

    public Date getFechaRegistro() {
        return fechaRegistro;
    }

    public void setFechaRegistro(Date fechaRegistro) {
        this.fechaRegistro = fechaRegistro;
    }

    public Collection<Adjuntos> getAdjuntosCollection() {
        return adjuntosCollection;
    }

    public void setAdjuntosCollection(Collection<Adjuntos> adjuntosCollection) {
        this.adjuntosCollection = adjuntosCollection;
    }

    public Integer getIdAgencia() {
        return idAgencia;
    }

    public void setIdAgencia(Integer idAgencia) {
        this.idAgencia = idAgencia;
    }

    public Campo getIdCampo() {
        return idCampo;
    }

    public void setIdCampo(Campo idCampo) {
        this.idCampo = idCampo;
    }

    public Cliente getIdCliente() {
        return idCliente;
    }

    public void setIdCliente(Cliente idCliente) {
        this.idCliente = idCliente;
    }

    public Inspector getIdInspector() {
        return idInspector;
    }

    public void setIdInspector(Inspector idInspector) {
        this.idInspector = idInspector;
    }

    public Liquidador getIdLiquidador() {
        return idLiquidador;
    }

    public void setIdLiquidador(Liquidador idLiquidador) {
        this.idLiquidador = idLiquidador;
    }

    public Motivo getIdMotivo() {
        return idMotivo;
    }

    public void setIdMotivo(Motivo idMotivo) {
        this.idMotivo = idMotivo;
    }

    public Novedad getIdNovedad() {
        return idNovedad;
    }

    public void setIdNovedad(Novedad idNovedad) {
        this.idNovedad = idNovedad;
    }

    public Usuario getIdUsuario() {
        return idUsuario;
    }

    public void setIdUsuario(Usuario idUsuario) {
        this.idUsuario = idUsuario;
    }

    public Date getFechaInspeccion() {
        return fechaInspeccion;
    }

    public void setFechaInspeccion(Date fechaInspeccion) {
        this.fechaInspeccion = fechaInspeccion;
    }

    public Servicio getIdServicio() {
        return idServicio;
    }

    public void setIdServicio(Servicio idServicio) {
        this.idServicio = idServicio;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {

        if (!(object instanceof Inspeccion)) {
            return false;
        }
        Inspeccion other = (Inspeccion) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "org.ugc.cnel.manabi.entidades.Inspeccion[id=" + id + "]";
    }

}
